More pulling at the autoconf rope. Tree builds on OS X and Linux with
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 7 Apr 2006 03:18:12 +0000 (03:18 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 7 Apr 2006 03:18:12 +0000 (03:18 +0000)
or without expat and with our without libusb.   But things are still very
klunky.

gpsbabel/Makefile.in
gpsbabel/coastexp.c
gpsbabel/configure.in
gpsbabel/hsa_ndv.c
gpsbabel/ignrando.c
gpsbabel/jeeps/gpslibusb.c
gpsbabel/jeeps/gpsusbstub.c

index 25f4dc36e012e25088fe9d304af209875e42f429..f6e5a63317232fefa0f66ca58aa5b89960f61c3f 100644 (file)
@@ -15,11 +15,6 @@ VERSIOND=$(VERSD)$(RELEASE)
 # INHIBIT_EXPAT=-DNO_EXPAT
 LIBEXPAT=-lexpat # -lefence
 
-# USB may required non-standard libraries (like libusb) be installed
-# and may not be available on all OSes.  Uncomment this to remove the key
-# parts of USB from the build.
-LIBUSB=-lusb
-
 # Space is significant, because MSVC wants no space between switch and arg (-Fofoo.o)
 # but cc/gcc does:
 #  $(OUTPUT_SWITCH)main.o
@@ -33,11 +28,11 @@ OUTPUT_SWITCH=-o #
 OPTIMIZATION=-O $(EXTRA_OPTIMIZATION)
 DEBUGGING=-g $(EXTRA_DEBUGGING)
 # add -DDEBUG_MEM to turn on memory allocation logging
-CFLAGS=$(EXTRA_CFLAGS) $(DEBUGGING) -Icoldsync $(INHIBIT_EXPAT) $(INHIBIT_USB) $(OPTIMIZATION)
+CFLAGS=$(EXTRA_CFLAGS) $(DEBUGGING) -Icoldsync $(INHIBIT_EXPAT) $(INHIBIT_USB) $(OPTIMIZATION)  -I/sw/include
 INSTALL_TARGETDIR=/usr/local/
 
-#OTHER_ROOT=/opt/local # For DarwinPorts on OSX
-OTHER_ROOT=/sw         # Uncomment For Fink on OS X.
+# OTHER_ROOT=/opt/local        # For DarwinPorts on OSX
+# OTHER_ROOT=/sw               # Uncomment For Fink on OS X.
 
 FMTS=magproto.o gpx.o geo.o mapsend.o mapsource.o garmin_tables.o \
        gtm.o \
@@ -61,7 +56,7 @@ JEEPS=jeeps/gpsapp.o jeeps/gpscom.o \
        jeeps/gpsmath.o jeeps/gpsmem.o  \
        jeeps/gpsprot.o jeeps/gpsread.o \
        jeeps/gpsrqst.o jeeps/gpssend.o jeeps/gpsserial.o jeeps/gpsutil.o \
-       jeeps/gpsusbread.o jeeps/gpsusbsend.o jeeps/gpsusbstub.o $(OSJEEPS)
+       jeeps/gpsusbread.o jeeps/gpsusbsend.o $(OSJEEPS) 
 # Extra modules in Jeeps that we don't use
 #      jeeps/gpsfmt.o jeeps/gpsinput.o jeeps/gpsproj.o
 
index a7909b896cf2af8283ceae84f622e0bb5cf4c4d1..55359c6f20c354919f4e54c084688302fa63ba09 100755 (executable)
@@ -38,18 +38,6 @@ static FILE *ofd;
 #define MY_TBUF 64
 #define MY_XBUF 128
 
-#if !HAVE_LIBEXPAT
-void
-ce_rd_init(const char *fname)
-{
-       fatal(MYNAME ": This build excluded CoastalExplorer support because expat was not installed.\n");
-}
-
-void
-ce_read(void)
-{
-}
-#else
 
 static char *element; // Current element being parsed
 static char *cdatastr; // Current XML character data being built up (until a <lf>)
@@ -128,6 +116,19 @@ ce_free_route(ce_route *route)
        // Don't free the waypoint since this is done elsewhere
 }
 
+#if !HAVE_LIBEXPAT
+void
+ce_rd_init(const char *fname)
+{
+       fatal(MYNAME ": This build excluded CoastalExplorer support because expat was not installed.\n");
+}
+
+void
+ce_read(void)
+{
+}
+#else
+
 /* Start processing an XML item */
 static void
 ce_start(void *data, const char *el, const char **attr)
index 130428f23a38d6e7607e31221e352e49419fef66..7d09faab060b00a428aa69ab9cafcd868e046d59 100644 (file)
@@ -28,9 +28,24 @@ AC_CHECK_LIB([m], [cos])
 AC_MSG_CHECKING(for libusb)
 if test "$with_libusb" = no ; then
        AC_MSG_RESULT(check not done)
-       AC_DEFINE(NO_USB, "1")
 else
-       AC_CHECK_LIB([usb], [usb_open])
+       AC_CHECK_PROG(LIBUSBCONFIG, libusb-config, true, false)
+       if test "$LIBUSBCONFIG" = false; then
+                       AC_MSG_ERROR([libusb-config not found in $PATH])
+       fi;
+       OLDFLAGS=$LDFLAGS
+       OCFLAGS=$CFLAGS
+       LDFLAGS="$LDFLAGS `libusb-config --libs`"
+       CFLAGS="$OCFLAGS `libusb-config --cflags`"
+
+       AC_CHECK_LIB([usb], [usb_interrupt_read],
+               [USB_FLAGS="`libusb-config --cflags`"]
+               [LDFLAGS="$LDFLAGS `libusb-config --libs`"],
+               [AC_MSG_ERROR([libusb >= 0.1.8 is needed])]
+               )
+       CFLAGS="$OCFLAGS"
+       LIBS="$LIBS `libusb-config --libs`"
+       AC_CHECK_LIB([usb], [usb_interrupt_read])
 fi
 
 AC_MSG_CHECKING(for random stuff to make you feel better)
@@ -40,7 +55,10 @@ AC_MSG_CHECKING(for libexpat)
 if test "$with_libexpat" = no ; then
        AC_MSG_RESULT(check not done)
 else
-       AC_CHECK_LIB([expat], [XML_ParserCreate])
+#      AC_CHECK_LIB([expat], [XML_ParserCreate])
+       AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LIB="-lexpat",
+       AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LIB="-lexpat", [], "-L/sw/lib -I/sw/include"), "-L/sw/lib -I/sw/include")
+       AC_CHECK_LIB(expat, XML_ParserCreate)
 fi
 
 # Checks for header files.
@@ -72,5 +90,4 @@ AC_HEADER_STDC
 #                 doc/Makefile
 #                 mingw/Makefile])
 AC_CONFIG_FILES([Makefile])
-# AC_CONFIG_HEADER(config.h)
 AC_OUTPUT
index 4bdf7b1a1574382fa92d2574afcc1ea739198196..92a91fb478af4178f142620c0acaf0bf3ff92bf5 100644 (file)
@@ -37,6 +37,7 @@ static char *routeName = "ROUTENAME";
 #define ATTR_SHIPNAME                                          "shpnam"
 
 static void readVersion4( FILE* pFile);
+static void getAttr(const char *data, const char *attr, char **val, char seperator);
 
 static FILE *fd;
 static FILE *ofd;
@@ -91,33 +92,6 @@ hsa_ndv_start(void *data, const char *el, const char **attr)
        memset(cdatastr,0, MY_CBUF);
 }
 
-static void getAttr(const char *data, const char *attr, char **val, char seperator)
-{
-       char *start;
-       if ((start = strstr(data, attr)) != NULL)
-       {
-               char *end;
-               int len;
-
-               end = strchr(start, seperator);
-               if (end == NULL)
-               {
-                       end = start + strlen(start);//assume we are teh last attr
-               }
-
-               len = end-start - strlen(attr);
-
-               *val = xcalloc(len+1, 1);
-               memcpy(*val, start+strlen(attr), len);
-               (*val)[len] = '\0';
-       }
-       else
-       {
-               *val = xcalloc(1, 1);
-               (*val)[0] = '\0';
-       }
-}
-
 static void
 hsa_ndv_end(void *data, const char *el)
 {
@@ -277,6 +251,32 @@ hsa_ndv_read(void)
 
 #endif
 
+static void getAttr(const char *data, const char *attr, char **val, char seperator)
+{
+       char *start;
+       if ((start = strstr(data, attr)) != NULL)
+       {
+               char *end;
+               int len;
+
+               end = strchr(start, seperator);
+               if (end == NULL)
+               {
+                       end = start + strlen(start);//assume we are teh last attr
+               }
+
+               len = end-start - strlen(attr);
+
+               *val = xcalloc(len+1, 1);
+               memcpy(*val, start+strlen(attr), len);
+               (*val)[len] = '\0';
+       }
+       else
+       {
+               *val = xcalloc(1, 1);
+               (*val)[0] = '\0';
+       }
+}
 static void
 hsa_ndv_rd_deinit(void)
 {
index 152e686c6f39e0dac58be878ca30209ba85f093d..382660cefe6672c0e8a1361d0f8095b194c55c7a 100644 (file)
@@ -51,24 +51,6 @@ static arglist_t ignr_args[] =
        ARG_TERMINATOR
 };
 
-static xg_callback     ignr_start;
-static xg_callback     ignr_nb_etapes, ignr_descr;
-static xg_callback     ignr_etape_begin, ignr_etape_end;
-static xg_callback     ignr_etape_pos, ignr_etape_alt;
-
-static 
-xg_tag_mapping ignr_xml_map[] = 
-{
-       { ignr_start,           cb_start,       "/RANDONNEE" },
-       { ignr_nb_etapes,       cb_cdata,       "/RANDONNEE/INFORMATIONS/NB_ETAPES" },
-       { ignr_descr,           cb_cdata,       "/RANDONNEE/INFORMATIONS/DESCRIPTION" },
-       { ignr_etape_begin,     cb_start,       "/RANDONNEE/ETAPE" },
-       { ignr_etape_end,       cb_end,         "/RANDONNEE/ETAPE" },
-       { ignr_etape_pos,       cb_cdata,       "/RANDONNEE/ETAPE/POSITION" },
-       { ignr_etape_alt,       cb_cdata,       "/RANDONNEE/ETAPE/ALTITUDE" },
-       { NULL,                 0,              NULL }
-};
-
 #if ! HAVE_LIBEXPAT
 
 static void
@@ -89,6 +71,25 @@ ignr_rd_deinit(void)
 
 #else
 
+
+static xg_callback     ignr_start;
+static xg_callback     ignr_nb_etapes, ignr_descr;
+static xg_callback     ignr_etape_begin, ignr_etape_end;
+static xg_callback     ignr_etape_pos, ignr_etape_alt;
+
+static 
+xg_tag_mapping ignr_xml_map[] = 
+{
+       { ignr_start,           cb_start,       "/RANDONNEE" },
+       { ignr_nb_etapes,       cb_cdata,       "/RANDONNEE/INFORMATIONS/NB_ETAPES" },
+       { ignr_descr,           cb_cdata,       "/RANDONNEE/INFORMATIONS/DESCRIPTION" },
+       { ignr_etape_begin,     cb_start,       "/RANDONNEE/ETAPE" },
+       { ignr_etape_end,       cb_end,         "/RANDONNEE/ETAPE" },
+       { ignr_etape_pos,       cb_cdata,       "/RANDONNEE/ETAPE/POSITION" },
+       { ignr_etape_alt,       cb_cdata,       "/RANDONNEE/ETAPE/ALTITUDE" },
+       { NULL,                 0,              NULL }
+};
+
 static void
 ignr_xml_error(int condition)
 {
index 0183ffc06587a9060af7ac1a400fd90e800e07c4..ccc07f35643fd2b5a1600036a266108d3317e429 100644 (file)
@@ -22,8 +22,9 @@
 
 #include <stdio.h>
 #include <ctype.h>
-#include <usb.h>
 #include "../config.h"
+#if HAVE_LIBUSB
+#include <usb.h>
 #include "gps.h"
 #include "garminusb.h"
 
@@ -254,3 +255,4 @@ void garmin_usb_scan(void)
                fatal("Found no Garmin USB devices.\n");
        }
 }
+#endif /* HAVE_LIBUSB */
index c902ed628d180b40ca49af6dee6b773e65a2c795..f8c677afc7b90bcb1680a889795186d158b18ccc 100644 (file)
@@ -19,9 +19,9 @@
 
  */
 
-#if NO_USB
 
 #include "garminusb.h"
+#if !HAVE_LIBUSB
 
 const char no_usb[] = "USB suport is not available in this build.\n";
 int